#!/usr/bin/env python
# -*-coding:utf-8 -*-

# Author:Lim
l = [1,2,3]
#增加
l = l + [4]
print(l)
l += [5]
print(l)
l = l * 2
print(l)
l *= 2
print(l)
#将元素插入到list的末尾
l.append(6)
print(l)
#指定位置插入元素
l.insert(0,0)
print(l)
#检索
print(l[0:6])
print(l[0:])
print(l[:25])
print(l[-1])
print(l[0:25:2])
#返回目标值的索引, 无结果会报错
print(l.index(6))
#查找x,在前面增加y
print(l.insert(l.index(0),1))
print(l)
#切片赋值
l[0] = 0
print(l)
# 一个字串替换另外一个字串
l[1:22] = [1,2,3,4,5]
print(l)
#删除末尾元素返回
print(l.pop())
#删除元素但是不返回, 只删除找到的第一个目标元素
l.remove(1)
print(l)
#计算目标元素在当前list中的个数
print(l.count(0))
# 在当前列表上做倒序, 返回None
l.reverse()
print(l)
# 返回新列表
reversed(l)
print(l)
# 在当前列表上做增序排列, 返回None
l = [1,2,1,5,4,3]
l.sort()
print(l)
# 倒序排列
l.sort(reverse=True)
print(l)
# 返回新列表
sorted(l)
print(l)

#元组检索
t = ('a','b','c')
#索引取值
print(t[0])
#切片
print(t[0:2])
#返回索引
print(t.index('c'))

#字典增加,键对值赋值
d = {'a':1,'b':2}
d['c'] = 3
print(d)
#update
d_1 = {'d':4}
d.update(d_1)
print(d)
#setdefault,如果有值, 就pass, 如果没有值, 就设置默认值
d.setdefault('a',9)
d.setdefault('e',5)
print(d)
#检索，通过键来访问
print(d['b'])
#get,如果有值, 则返回该值; 如果没有值, 返回默认值
d.get('a',1)
d.get('b',9)
print(d)
#keys()返回所有key
print(d.keys())
#values()返回所有值
print(d.values())
#items()返回元组形式的键对值
print(d.items())
#更新(Update)键对值赋值
d['a'] = 0
print(d)
#删除，pop删除指定key
d.pop('a')
print(d)
#popitem()随机删除元素*尽量不要用
d.popitem()
print(d)
#clear()清空当前字典
d.clear()
print(d)

#集合，增加add
s = {1,2,3}
s.add(4)
print(s)
#检索(Retrieve),in判断当前元素在不在set中
print(5 in s)
print(1 in s)
#更新(Update),update合并两个set,将y的元素合并到x中, 返回None
s_1 = {'a','b'}
s.update(s_1)
print(s)
#union返回两个set的并集, 不改变x, y
s_2 = {5}
s_3 = s.union(s_2)
print(s_3)
#删除(Delete)remove删除元素, 没有该元素会报错
#discard删除元素, 没有该元素不会报错
s.remove('a')
s.discard(0)
s.discard(1)
print(s)
#pop随机删除一个元素
print(s.pop())

t = {1,2,3,'a','b','c'}
print(t)
print(t.pop())

